#include"process.h"
#include<stdio.h>
#include<unistd.h>

//当未来具有上传，都应该有对应的进度条行为  为了业务中可以上传或者下载时刷新行为单独做  就需要对下面的代码做一定的解耦
typedef void (*callback_t)(double total,double current);   //函数指针  定义了函数指针类型（为了给Download解耦）

double total = 1024.0;   //模拟下载量
double speed = 1.0;      //模拟网络下载速度

void DownLoad(callback_t cb)    //修改为回调函数 进行解耦
{
    double current = 0;
    while(current <= total)   //防止下载不到100%  就需要把等于加上
    {
	//刷新进度(总量 和 已经下载量  传参传过去)
	//FlushProcess(total,current);

	////// 有了对应的回调函数就不需要明显设置刷新 ///////
	cb(total,current);


	//下载代码
	usleep(3000);   //充当下载数据
	current+= speed;
    }
	printf("\nDownload %.2lf MB Done\n",current);  //保存两位小数
}

void UpLoad(callback_t cb)
{
	double current = 0;
	while(current<=total)
	{
	   cb(total,current);
	   usleep(3000);
	   current+=speed;
	}
	printf("\nUpload %.2lf MB Down\n",current);
}

int main()
{
 //  process_v1();
   
  //刷新就更改为回调
     DownLoad(FlushProcess);    
     UpLoad(FlushProcess);

     return 0;
}
